// 广告消耗记录相关类型定义

/** 表单属性 */
interface FormItemProps {
  /** 投放人员ID */
  user_id: string;
  /** 消耗日期 */
  consumption_date: string;
  /** 广告计划ID */
  ad_plan_id: number;
  /** 代理商ID */
  agent_id: string;
  /** 消耗总金额 */
  total_amount: string;
}

/** 表单属性接口 */
interface FormProps {
  formInline: FormItemProps;
}

/** 用户选项 */
interface UserOption {
  value: number;
  label: string;
  accounts?: Array<{
    value: number;
    label: string;
    agent_id: number;
    agent_name: string;
    platform: number;
    platform_text: string;
  }>;
}

/** 代理商选项 */
interface AgentOption {
  value: number;
  label: string;
  platform: number;
  platform_text?: string;
}

/** 广告账号选项 */
interface AccountOption {
  value: number;
  label: string;
  agent_id: number;
  agent_name: string;
  platform: string;
  platform_text: string;
  creator_id: number;
}

/** 广告计划选项 */
interface AdPlanOption {
  value: number;
  label: string;
}

/** 消耗记录项 */
interface ConsumptionRecordItem extends FormItemProps {
  /** 记录ID */
  id: number;
  /** 投放人员信息 */
  user?: {
    id: number;
    username: string;
  };
  /** 代理商信息 */
  agent?: {
    id: number;
    name: string;
    platform: string;
  };
  /** 消耗明细 */
  details?: ConsumptionDetailItem[];
  /** 格式化金额 */
  formatted_amount?: string;
  /** 格式化日期 */
  formatted_date?: string;
  /** 创建时间 */
  created_at?: number;
  /** 更新时间 */
  updated_at?: number;
}

/** 消耗明细项 */
interface ConsumptionDetailItem {
  /** 明细ID */
  id: number;
  /** 记录ID */
  record_id: number;
  /** 账号ID */
  account_id: number;
  /** 消耗金额 */
  amount: number;
  /** 账号信息 */
  account?: {
    id: number;
    account_no: string;
  };
  /** 格式化金额 */
  formatted_amount?: string;
}

/** 批量表单账号项 */
interface BatchAccountItem {
  key: string;
  account_id: string;
  amount: string;
}

/** 批量表单属性 */
interface BatchFormItemProps {
  /** 投放人员ID */
  user_id: string;
  /** 消耗日期 */
  consumption_date: string;
  /** 广告计划ID */
  ad_plan_id: number;
  /** 录入方式：manual-手工录入, account-按账号录入 */
  input_type: string;
  /** 手工录入数据 */
  manual_data: Array<{
    agent_id: string;
    amount: string;
  }>;
  /** 按账号录入数据 */
  account_data: BatchAccountItem[];
}

/** 批量表单属性接口 */
interface BatchFormProps {
  formInline: BatchFormItemProps;
}

export type {
  FormItemProps,
  FormProps,
  UserOption,
  AgentOption,
  AccountOption,
  AdPlanOption,
  ConsumptionRecordItem,
  ConsumptionDetailItem,
  BatchAccountItem,
  BatchFormItemProps,
  BatchFormProps
}; 